package sql;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class CursoProfessorBD {
	
	private Statement st;

	public CursoProfessorBD( Statement st ) {
		this.st = st;
	}
	
	public void add( int id_curso, int id_professor ) throws CursoProfessorException {
		String query = "INSERT INTO curso_professor ( id, id_curso, id_professor ) VALUES ( NULL, " + id_curso + ", " + id_professor + " );";
		try {
			if( hasCursoProfessor( id_curso, id_professor ) ) {
				throw new CursoProfessorException( "Não pode adicionar relacionamento: Já existente." );
			}
			st.execute( query );
		} catch (SQLException e) {
			throw new CursoProfessorException( "Erro de sintaxe no comando SQL:\n" + e );
		}
	}
	
	private boolean hasCursoProfessor( int id_curso, int id_professor ) throws CursoProfessorException {
		String query = "SELECT id FROM curso_professor WHERE id_curso = " + id_curso + " AND id_professor = " + id_professor + " ;";
		ResultSet rs;
		try {
			rs = st.executeQuery( query );
			if( rs.next() ) {
				if( rs.getInt( "id" ) > 0 ) {
					return true;
				} else {
					return false; 
				}
			} else {
				throw new CursoProfessorException( "Cursor não pode ser iniciado." );
			}
		} catch( SQLException e ) {
			throw new CursoProfessorException( "Erro de sintaxe no comando SQL:\n" + e );
		}
	}
	
}
